package web.reclamos.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import web.reclamos.beans.Coorporacion;
import web.reclamos.beans.Area;
import web.reclamos.beans.Cargo;
import web.reclamos.beans.Departamento;
import web.reclamos.beans.Empresa;
import web.reclamos.beans.Usuario;
import web.reclamos.service.AreaService;
import web.reclamos.service.UsuarioService;

public class UsuarioServlet extends HttpServlet {


    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        if(request.getServletPath().equals("/usuario_nuevo.reclamo")) {
            nuevoUsuario(request, response);
        }else if(request.getServletPath().equals("/usuario_modificar.reclamo")) {
            modificarUsuario(request, response);
        }else if(request.getServletPath().equals("/usuario_eliminar.reclamo")) {
            eliminarUsuario(request, response);
        }else if(request.getServletPath().equals("/usuario_consultar.reclamo")) {
            consultarUsuario(request, response);
        }
    }

    private void nuevoUsuario(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
          UsuarioService usuService = new UsuarioService();
          Usuario usuario = new Usuario();
            System.out.println("+++++++++++++++++++++++++++");
            System.out.println(request.getParameter("txtId"));
            System.out.println(request.getParameter("txtCodigo"));
            System.out.println(request.getParameter("txtNombre"));
            System.out.println(request.getParameter("txtApe1"));
            System.out.println(request.getParameter("txtApe2"));
            System.out.println(request.getParameter("txtIdCargo"));
            System.out.println(request.getParameter("txtIdDepartamento"));
            System.out.println(request.getParameter("txtIdArea"));
            System.out.println(request.getParameter("txtIdEmpresa"));
            System.out.println(request.getParameter("txtIdCoorporacion"));
            System.out.println("+++++++++++++++++++++++++++");

          
          usuario.setId_nombre(Integer.parseInt(request.getParameter("txtId")));
          usuario.setCodigo_usuario(request.getParameter("txtCodigo"));
          usuario.setNombre_usuario(request.getParameter("txtNombre"));
          usuario.setApellido_usuario1(request.getParameter("txtApe1"));
          usuario.setApellido_usuario2(request.getParameter("txtApe2"));
          usuario.setCargo(new Cargo(Integer.parseInt(request.getParameter("txtIdCargo")), null));
          usuario.setDepartamento(new Departamento(Integer.parseInt(request.getParameter("txtIdDepartamento")), null));
          usuario.setArea(new Area(Integer.parseInt(request.getParameter("txtIdArea")), null));
          usuario.setEmpresa(new Empresa(Integer.parseInt(request.getParameter("txtIdEmpresa")), null, null, null));
          usuario.setCoorporacion(new Coorporacion(Integer.parseInt(request.getParameter("txtIdCoorporacion")), null, null, null));
          

           try {
                usuService.registrarUsuario(usuario);
            }catch(Exception ex) {
                //Ir pagina de error
            }
           //Regresar pagina producto_nuevo
          response.sendRedirect("TablasExito.jsp");
    }
    private void modificarUsuario(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        /*ProductoService proService = new ProductoService();
        String filtro = request.getParameter("txtFiltro");

        Producto producto = new Producto();
        producto.setId(Integer.parseInt(request.getParameter("txtId")));
        producto.setNombre(request.getParameter("txtNombre"));
        producto.setPrecio(Float.parseFloat(request.getParameter("txtPrecio")));
        producto.setStock(Integer.parseInt(request.getParameter("txtStock")));

        proService.modificarProducto(producto);

        String url = "/producto_consultar.isil?txtNombre=" + filtro ;
        getServletContext().getRequestDispatcher(url).forward(request, response);*/
    }

    private void eliminarUsuario(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        /*ProductoService proService = new ProductoService();
        int id = Integer.parseInt(request.getParameter("id"));

        proService.eliminarProducto(id);

        String url = "/producto_consultar.isil?txtNombre=" + request.getParameter("txtNombre") ;
        getServletContext().getRequestDispatcher(url).forward(request, response);*/
    }

    private void consultarUsuario(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        UsuarioService usuService = new UsuarioService();
        String nombre = request.getParameter("txtNombre");

        List<Usuario> usuarios = usuService.consultarPorNombre(nombre);
        request.setAttribute("nombre", nombre);
        request.setAttribute("usuarios", usuarios);

        String url = "/TablasUsuario.jsp";
        getServletContext().getRequestDispatcher(url).forward(request, response);

    }
}
